package cn.bdqn.controller.course;

import cn.bdqn.pojo.course.CourseNotes;
import cn.bdqn.service.course.CourseNotesService;
import cn.bdqn.utils.Json;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/api/courseNotes")
public class CourseNotesController {
    @Autowired
    CourseNotesService service;
    private static Json json=new Json();

    /**
     * 查询视频笔记的分页信息
     * @param curr  当前页
     * @param size  数据条数
     * @param userName  用户名称
     * @param videoName 视频名称
     * @param content   笔记内容
     * @param startTime 开始时间
     * @param endTime   结束时间
     * @return  返回笔记分页信息
     */
    @PreAuthorize("hasAuthority('course:management')")
    @GetMapping("/selectNotesAll")
    public Json selectNotesAll(Integer curr,Integer size,String userName,String videoName,String content,String startTime,String endTime){
        PageInfo page = service.selectAllCourseNotes(curr, size,userName,videoName,content,startTime==null?null:startTime+" 00:00:00",endTime==null?null:endTime+" 23:59:59");
        json.setData(page.getList());
        json.setCode(200);
        json.setMsg("成功");
        json.setTotal((int) page.getTotal());
        return json;
    }

    /**
     * 添加课程笔记
     * @param notes 添加的笔记对象
     * @return  返回json对象
     */
    @PreAuthorize("hasAuthority('course:management')")
    @PostMapping("/insertCourseNotes")
    public Json insertNotes(@RequestBody CourseNotes notes){
        Integer integer = service.insertCourseNotes(notes);
        if(integer>0){
            json.setCode(200);
            json.setMsg("成功");
        }else{
            json.setCode(400);
            json.setMsg("失败");
        }
        return json;
    }

    /**
     * 根据笔记id删除笔记信息
     * @param id    笔记id
     * @return  返回json对象
     */
    @PreAuthorize("hasAuthority('course:management')")
    @DeleteMapping("/deleteNotes")
    public Json deleteNotes(Integer id){
        Integer integer = service.deleteCourseNotesById(id);
        if(integer>0){
            json.setCode(200);
        }else{
            json.setCode(400);
        }
        return json;
    }

    /**
     * 更新笔记信息
     * @param notes 更新后的笔记信息
     * @return  返回json对象
     */
    @PreAuthorize("hasAuthority('course:management')")
    @PutMapping("/updateNotes")
    public Json updateNotes(@RequestBody CourseNotes notes){
        Integer integer = service.updateNotes(notes);
        if(integer>0){
            json.setCode(200);
        }else{
            json.setCode(400);
        }
        return json;
    }
}
